技术点
"
* 请描述工作中遇到印象深刻的项目（难点）

* PC端和移动端的开发区别
	1.分辨率不同
	2.浏览器兼容性，以及移动端安卓性和iOS系统的区别
* 使用过的布局方式（REM）

* 弹性盒子


* 事件对象与事件模型
	1.事件指的是当页面元素自动发生改变，或者用户手动触动页面元素发生改变的叫事件
	2.事件模型代表我们触发事件到事件执行玩中间发生的一系列事情：　(1).事件捕获阶段，(2).事件目标阶段，(3).事件冒泡阶段。
	(1).事件捕获阶段：当某个元素触发某个事件（如onclick），顶层对象document就会发出一个事件流，
	随着DOM树的节点向目标元素节点流去，直到到达事件真正发生的目标元素。在这个过程中，事件相应的监听函数是不会被触发的。(说白了就是从外边向里面发信号找到对应目标元素)
	(2).事件目标阶段：当到达目标元素之后，执行目标元素该事件相应的处理函数。如果没有绑定监听函数，那就不执行。(就是找到目标进行绑定事件比如click)
	(3).事件冒泡阶段：从目标元素开始，往顶层元素传播。途中如果有节点绑定了相应的事件处理函数，这些函数都会被一次触发。(就是从里边向外面发信号找到对应目标元素)


* 过渡动画和自定义动画的区别
	1.过度动画就是使瞬间的样式变化，按照一定方式变得缓慢平缓；(瞬间变换变慢)
	2.自定义动画通过关键帧，使得花样比较多
	总结：两者的第一点区别，触发条件不同，transition通常和hover等事件配合使用，由事件触发。animation则和gif动态图差不多，立即播放。
	主要的区别transition不能立即执行，animation不能用事件触发;
* 后台交互（状态值和状态码、jsonp）
	状态值：
	 0 － （未初始化）还没有调用send()方法
	 1 － （载入）已调用send()方法，正在发送请求
	 2 － （载入完成）send()方法执行完成，已经接收到全部响应内容
	 3 － （交互）正在解析响应内容
	 4 － （完成）响应内容解析完成，可以在客户端调用了(重点4是解析成功)
	状态码：
	常用：
	200():交易成功
	404():没有发现文件、查询或URl
	500():服务器产生内部错误
	503():服务器过载或暂停维修，宕机
	jsonp:
	解决跨域问题：利用script标签的src属性进行进行跨域请求，通过callback回调函数返回数据
	jsonp的优点
	1）基于纯文本传递极其简单，（2）轻量级数据格式适合互联网传递，（3）容易编写和解析。
* 数组
	数组方法：
	改变原数组:pop,push,unshift,shift,splice(增删改),sort(排序)，reverse(倒序排序)，
	indexOf(找指定元素的位置)，filter(筛选)
	不改变原数组:slice(截取数组),join(用指定的分隔符将数组每一项拼接为字符串),concat(连接两个或多个数组)
	
	数组去重：
	1.双重for循环进行判断：进行两个数值的比较，如果不重复就添加到新的数组里，最后返回新数组(笨拙的办法)
	2.利用 indexOf属性 indexOf是返回某个指定的字符在字符串中出现的位置，如果没有就会返回-1 
	定义一个空数组，调用indexof进行遍历判断，如果元素不在res将其push到新的数组里，再返回这个数组
	3.利用对象的思想 如果对象里没有这个属性的话就会返回undefined，利用这个原理当返回的是undefined时 让其放入数组 然后在给这个属性赋值


* DOM操作
	DOM是的结构是由各种的子节点组成的，HTMLDocument为根节点，其余的为子节点，例如属性节点，标签节点，文本节点，从而组成了DOM树；
	
	常用的DOM操作：
	获取节点：getElementById(通过ID获取)，getElementsByClassName()
	getElementsByName ：根据元素的name属性查找，返回一个 NodeList 。
	document.querySelector ：返回单个Node，如果匹配到多个结果，只返回第一个。
	document.querySelectorAll:返回一个 NodeList
	
	创建节点：通过createlement进行创建新的节点
	创建文本节点：createTextNode
	克隆节点：cloneNode 克隆
	
	节点修改：
	appendChild()添加到parent的子节点的最后面
	insertBefore()将某个节点插入到另外一个节点的前面
	removeChild()用于删除指定的子节点并返回子节点
	replaceChild()用于将一个节点替换另一个节点
	
	节点关系：父关系(parentNode)，子关系(children),(childNodes),(firstchild,lastchild),兄弟关系(sibling)
	
	节点属性： getAttribute(属性名)返回元素的属性，setAttribute(属性名，属性值)----设置元素属性
			removeAtrribute(属性名)----删除属性
	
* JQ操作
* JS的介绍
--------------------------------------------
* 为什么来公司面试
* 未来规划
* 公司价值
* 自适应布局
* PC端和移动端的开发区别
* viewport
	将逻辑像素转换为物理像素，在pc端适配到移动端，做移动端是必须添加
	媒体查询是优化的手段，可不用添加

* Ajax
* JS数据类型（简单数据类型与复杂数据类型的区别）
* 区分数组和对象（typeof和toString.call）
* 数组常见的方法（常见方法，去重）
* 闭包（原理，使用场景）
	什么是闭包：
	在js中，变量的作用域属于局部作用域(函数作用域)，在函数执行后作用域也会被垃圾回收机制回收，但是由于闭包是建立在一个
	函数中的子函数，是可以访问上级作用域的，所以即使上级函数执行完，作用域也不会消失，那子函数(闭包)便可以访问上级作用域的变量
	的权利，所以上级函数执行完后作用域的值也不会被销毁
	
	
* 事件委托（event）
	
* this(原型链)
	
	原型：
	
	

* 团队项目
--------------------------------------------
* 项目的难点
* 之前公司的上司
* 离开的理由
* 职业规划
"
"
* Ajax（状态码与状态值、跨域、jsonp）
* 同源策略
* 原型链与原型
* new实例化流程
* this的理解
* 闭包
* JQ的常用API
* 团队开发流程
-----------------------------------------------------
* 自我学习能力
* 薪酬问题
"
"
* PC端与移动端的布局区别
* viewport
* boostrap的栅格化
* 弹性盒子（水平方向两端对齐）
* CSS动画（区别）
* JS数据类型
* 复杂数据类型判断
* instanceof
* ajax的状态值与状态码
* 跨域（jsonp）
* 团队项目流程
* 同步和异步
* 面向对象
* 数组和字符串的互相转化
---------------------------------------------------
* 介绍自我优点
* 上次项目的收获
* 最有成就感的一件事
"
"
* 媒体查询
* JQ的API
* Ajax（状态码与状态值）
* 跨域（jsonp）
* 复杂数据类型判断
* 原型链
* this的理解
* 事件委托（事件模型，原型模型）
* 项目管理（Git的原理）
* 同步与异步
* 数组与字符串的转换
-----------------------------------------------
* 个人优点
* 与领导冲突
* 评论上一任的直属上司
* 个人规划
* 团队合作
"
"
* boostrap的栅格化
* viewport
* REM布局
* CSS3动画
* scss语法
* Ajax（跨域）
* 数组排序
"
"
* Ajax（post和get）
* jsonp的原理
* 数组常用方法
* 复杂数据类型判断
* 构造函数和模型函数
* this
* new
* 原型链
-----------------------------------------------------------
* 为什么选择我们公司
* 离职原因
* 收获
"
"
* 栅格化
* 媒体查询的作用
* 盒子模型（IE怪异模型和标准模型）
* 重绘和回流
* instaceof
* 复杂数据类型判断
* Ajax
* 跨域问题
* jsonp
"
"
* 栅格化
* 碰撞检测
* Git
* 盒子模型（IE怪异模型和标准模型）
* 重绘和回流
* 浮动
* position
* 垂直居中
* 数据类型
* 复杂数据类型判断
* 数组常见方法
* jsonp
"
"
* 栅格化
* JQ的API
* Ajax
* 跨域问题
* jsonp
* 复杂类型又称为引用类型
* 闭包
* call和apply

"
"
* Git
* 栅格化
* 数据类型
* 复杂数据类型判断
* 闭包
* 原型链
* 同步和异步
"
"
* 弹性盒子
* boostrap
* 数据类型
* 隐形转换
* Ajax
* 跨域问题
"
"
* 继承方式
* Ajax
* this指向
* 隐式转换
* 构造函数模式和原型模式
* 闭包
"
"
* REM
* 栅格化
* 动画
* 弹性盒子
"
"
* 垂直居中
* position
* 数据类型
* Ajax
"
"
* 数据类型
* Ajax
"
"
* JS的执行机制
* 数据类型
* 隐式转化
* JS的设计模式
* jsonp
* Ajax
"
"
* 栅格化
* REM
* 同步和异步
* 闭包
* Ajax
"
"
* 碰撞检测
* Ajax
* 状态码与状态值
* POST请求预检
* 跨域
* 复杂数据类型判断
* call和apply
* null和undefined
* 浏览器渲染页面的流程
* 性能优化
* 闭包

"






